//package inutan.gateway.balancer;
//
//import org.ricks.net.AioSession;
//import org.ricks.net.SessionManager;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Optional;
//import java.util.Set;
//
//public class ConsistentHashOfMemoryConsumerLoadBalancer extends ConsistentHashConsumerLoadBalancer {
//
//    /**
//     * 存储已经负载后的sid
//     */
//    private static final Map<Long, Long> uid2sidMap = new HashMap<>();
//
//
//    @Override
//    public AioSession loadBalancer(byte modularId, Object argument) {
//
//        if (argument instanceof Long) {
//            long sid = uid2sidMap.get((Long) argument);
//            if (sid > 0L) {
//                Set<AioSession> sessions = SessionManager.me().get(String.valueOf(modularId));
//                Optional<AioSession> optionalAioSession = sessions.stream().filter(s -> s.sid() == sid)
//                        .findFirst();
//                if (!optionalAioSession.isEmpty()){
//                    return optionalAioSession.get();
//                }else {
//                    uid2sidMap.remove((Long) argument);
//                }
//            }
//        }
//        AioSession loadBalancer = super.loadBalancer(modularId, argument);
//        if (argument instanceof Long){
//            uid2sidMap.put((Long) argument, loadBalancer.sid());
//        }
//        return loadBalancer;
//    }
//}
